SoSe2021

Folienübersicht

Transformation

Wann transformieren?

Wozu transformieren?

  • Verteilung der Daten normalisieren.
  • Streuung reduzieren und Varianzen zwischen Gruppen angleichen.
  • Einfluss von Ausreißern reduzieren.
  • Beziehung zwischen Variablen linearer machen (für Korrelationen und Regressionsanalysen)

Die richtige Wahl

  • Die Wahl der “richtigen” Transformation kann schwierig sein und basiert, zumindest teilweise, auf Erfahrung.
  • Einflussfaktoren:
    • Fragestellung
      • Sind extremere Werte von Interesse oder die am häufigsten vorkommenden?
      • Bei Gemeinschaftsanalysen: geht es darum, welche Arten vorkommen oder mehr um die relativen Abundanzen der Arten (dominante vs. seltene Arten)?
    • Wahl der Analysemethode
      • Welche Annahmen müssen erfüllt sein?
      • Muss das Skalenniveau (z.B. das metrische) erhalten bleiben? (Korrelationen können beispielsweise nicht mit nominalen Daten gemacht werden)

Aus DS1: Umwandlung des Skalenniveau

Ein Beispiel

Skalenniveaus lassen sich umwandeln, allerdings kann dies immer mit einem Informationsverlust einhergehen.

Häufig angewandte Transformationen

Arkussinus

  • Geeignet für Prozente und Proportionen, die nicht normalverteilt sind.
x <- c(0.5, 0.2, 0.3)
x_arc <- asin(sqrt(x))

Wurzeltransformation

  • Geeignet für Häufigkeitsdaten (‘count data’).
  • Quadratwurzel:
    • Wenn Varianz = Mittelwert oder Daten Poisson-verteilt sind.
  • Vierte Wurzel:
    • Wenn die Varianz > Mittelwert entspricht oder Daten negativ binomial-verteilt sind.
x <- c(3,1,1,5,7,42)
x_2 <- sqrt(x) 
# oder: x^0.5
x_4 <- sqrt(sqrt(x)) 
# oder: x^0.25

Logarithmus

  • Geeignet wenn Varianzen >> Mittelwert.
  • Wenn der Datensatz Nullen enthält, dann addiere zu jeder Beobachtung eine Konstante.
x <- c(0, 0.5, 7.8, 9.4)
# natürlicher Log:
x_ln <- log(x + 0.1)  
# Log zur Basis 10:
x_log10 <- log10(x + 0.1)  

Powertransformation

  • Familie von Transformationen die nur angewendet werden können, wenn die Daten nicht negativ sind → ansonsten Konstante dazu addieren.
  • Die Transformation wird durch einen Potenzparameter \({\lambda}\) (lambda) definiert:
    • \(x(\lambda) = x^{\lambda}\) wenn \(\lambda \neq 0\) und \(x(\lambda) = log(x),~~\text{wenn}~~ \lambda = 0\)
  • Alternativ Box-Cox-Transformation wählen (Box & Cox, 1964):
    • \(\frac{x^{\lambda} - 1}{\lambda}\), wenn \(\lambda \neq 0\) und \(log(x)\), wenn \(\lambda = 0\)

Umfasst viele traditionelle Transformationen

  • \({\lambda}\) = 0.50: Quadratwurzel-Transformation
  • \({\lambda}\) = 0.25: 4te Wurzel-Transformation
  • \({\lambda}\) = 0: natürlicher Logarithmus
  • \({\lambda}\) = 1: keine Transformation

Vergleich Power- vs. Box-Cox-Transformation

\(\lambda = 0.5\)

Powertransformation

Vergleich verschiedener \(\lambda\)

Aus DS1: Schema zur Linearisierung durch Transformationen

Aus DS1: Anwendung der ‘bulging’ Regel

Your turn …

Shiny App 1: Welches Lambda zur Datennormalisierung?

Shiny App 2: Welches Lambda zur Angleichung von Varianzen?

Shiny App 3: Welches Lambda zur Linearisierung?

Fragen?